home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / lib / include / dev / fddi.h < prev    next >
C/C++ Source or Header  |  1992-06-08  |  4KB  |  133 lines

  1. /*
  2.  * fddi.h --
  3.  *
  4.  *    Declarations for ioctls specific to the DEC FDDI device.
  5.  *
  6.  * Copyright 1992 Regents of the University of California
  7.  * Permission to use, copy, modify, and distribute this
  8.  * software and its documentation for any purpose and without
  9.  * fee is hereby granted, provided that the above copyright
  10.  * notice appear in all copies.  The University of California
  11.  * makes no representations about the suitability of this
  12.  * software for any purpose.  It is provided "as is" without
  13.  * express or implied warranty.
  14.  *
  15.  * $Header: /sprite/src/lib/include/dev/RCS/fddi.h,v 1.2 92/06/08 14:51:58 voelker Exp $ SPRITE (Berkeley)
  16.  */
  17.  
  18. #ifndef _FDDI_IOC
  19. #define _FDDI_IOC
  20.  
  21. #define IOC_FDDI    (21 << 16)
  22.  
  23. /*
  24.  * Ioctl definitions specific to the FDDI device.
  25.  */
  26.  
  27. #define IOC_FDDI_RESET                 (IOC_FDDI | 0x1)
  28. #define IOC_FDDI_DEBUG                 (IOC_FDDI | 0x2)  /* Toggle debug */
  29. #define IOC_FDDI_SEND_PACKET           (IOC_FDDI | 0x3)
  30. #define IOC_FDDI_REG_CONTENTS          (IOC_FDDI | 0x4)
  31. #define IOC_FDDI_ERR_LOG               (IOC_FDDI | 0x5)
  32. #define IOC_FDDI_FLUSH_XMT_Q           (IOC_FDDI | 0x6)
  33. #define IOC_FDDI_ADDRESS               (IOC_FDDI | 0x7)
  34. #define IOC_FDDI_PRINT_DEBUG_RING      (IOC_FDDI | 0x8)
  35. #define IOC_FDDI_RPC_ECHO              (IOC_FDDI | 0x9)
  36. #define IOC_FDDI_HALT                  (IOC_FDDI | 0xA)
  37. #define IOC_FDDI_SOURCE                (IOC_FDDI | 0xB)
  38. #define IOC_FDDI_STATS                 (IOC_FDDI | 0xC)
  39.  
  40. /*
  41.  * IOC_FDDI_SEND_PACKET input parameter.
  42.  */
  43. typedef struct Dev_FDDISendPacket {
  44.     char     buffer[IOC_MAX_BYTES - sizeof(int) - sizeof(Net_Address)]; 
  45.                                         /* The data. */
  46.     int        length;            /* Length of the data. */
  47.     Net_FDDIAddress dest;
  48. } Dev_FDDISendPacket;
  49.  
  50. /*
  51.  * IOC_FDDI_REG_CONTENTS output parameter.
  52.  */
  53. typedef struct Dev_FDDIRegContents {
  54.     unsigned short regReset;
  55.     unsigned short regCtrlA;
  56.     unsigned short regCtrlB;
  57.     unsigned short regStatus;
  58.     unsigned short regEvent;
  59.     unsigned short regMask;
  60. } Dev_FDDIRegContents;
  61.  
  62. /*
  63.  * IOC_FDDI_ERR_LOG output parameter.
  64.  */
  65. typedef struct Dev_FDDIErrLog {
  66.     unsigned long internal;      /* Internal Error Code */
  67.     unsigned long external;      /* External Error Code (should match error
  68.                   * code in the STATUS register */
  69. } Dev_FDDIErrLog;
  70.  
  71. /*
  72.  * IOC_FDDI_ADDRESS output parameter.  The link address of the
  73.  * adapter.
  74.  */
  75. typedef struct Dev_FDDILinkAddr {
  76.     Net_FDDIAddress source;
  77. } Dev_FDDILinkAddr;
  78.  
  79. /*
  80.  * IOC_FDDI_RPC_ECHO input parameter.
  81.  */
  82. typedef struct Dev_FDDIRpcEcho {
  83.     unsigned long packetSize;
  84.     unsigned long numEchoes;
  85.     unsigned long serverID;
  86.     Boolean       printSyslog;
  87. } Dev_FDDIRpcEcho;
  88.  
  89. /*
  90.  * IOC_FDDI_RPC_ECHO output parameter.
  91.  */
  92. typedef struct Dev_FDDIRpcEchoReturn {
  93.     Time rpcTime;
  94. } Dev_FDDIRpcEchoReturn;
  95.  
  96. /*
  97.  * IOC_FDDI_SEND_PACKET input parameter.
  98.  */
  99. typedef struct Dev_FDDISourcePacket {
  100.     int        length;            /* Length of the data. */
  101.     Time        time;
  102.     Net_FDDIAddress dest;
  103. } Dev_FDDISourcePacket;
  104.  
  105. /*
  106.  * IOC_FDDI_STATS output structure.  It should look very similar
  107.  * to the Net_FDDIStats structure.
  108.  */
  109. typedef struct Dev_FDDIStats {
  110.     int        packetsSent;        /* Number of packets sent. */
  111.     int        bytesSent;            /* Number of bytes sent. */
  112.     int         transmitHistogram[NET_FDDI_STATS_HISTO_NUM];
  113.                                         /* Histogram of packet sizes sent */
  114.     int        packetsReceived;    /* Number of packets received. */
  115.     int        bytesReceived;        /* Number of bytes received. */
  116.     int         receiveHistogram[NET_FDDI_STATS_HISTO_NUM];
  117.                                         /* Histogram of rcved packet sizes */
  118.     int         receiveReaped[NET_FDDI_STATS_RCV_REAPED];
  119.                                         /* Number of packets reaped per
  120.                      * receive interrupt */
  121.     int         xmtPacketsDropped;      /* Packets dropped because 
  122.                      * of lack of transmit buffer space. */
  123.     int         packetsQueued;          /* Number of packets written
  124.                      * to adapter transmit buffers. */
  125. } Dev_FDDIStats;
  126.  
  127. #endif /* _FDDI_IOC */
  128.  
  129.  
  130.  
  131.  
  132.  
  133.